package com.bob.web.controller;

import com.bob.web.common.constant.CodeConstant;
import com.bob.web.common.constant.Page;
import com.bob.web.common.exception.ServiceException;
import com.bob.web.entity.system.Admin;
import com.bob.web.service.UserService;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


/**
 * Created by admin on 2017/6/28.
 */
@RestController
@RequestMapping("user")
public class UserController extends BaseController {

//    @Autowired
//    private UserService userService;

    @RequestMapping("home")
    public String test() {
        return "hello world";
    }

    @RequestMapping("login")
    public Admin login(String username, String password) {
        Admin user = new Admin();
        user.setUsername("admin");
        user.setPassword("admin");
//        user.setStatus(Admin.STATUS_SIGN_IN);
        setCurrentUser(user);
        UsernamePasswordToken token = new UsernamePasswordToken(username, password);
        Subject subject = SecurityUtils.getSubject();
        subject.login(token);
        return user;
    }

//    @RequestMapping("add")
//    public void add(Admin user) {
//        userService.add(user);
//    }

    @RequestMapping("info")
    public Admin info() {
        return getCurrentUser();
    }

    @RequestMapping("logout")
    public void logout() {
        Admin user = getCurrentUser();
//        user.setStatus(Admin.STATUS_SIGN_OUT);
    }

//    @RequestMapping("find_page")
//    public Page<Admin> findPage(Page<Admin> page) {
//        return userService.findPage(page);
//    }
//
//    @RequestMapping("delete")
//    public void delete(String id) {
//        userService.delete(id);
//    }
//
//    @RequestMapping("update")
//    public void update(Admin user) {
//        userService.update(user);
//    }
//
//    @RequestMapping("detail")
//    public Admin findUserById(String id) {
//        Admin user = userService.findUserById(id);
//        if(user == null) { //用户不存在
//            throw new ServiceException(CodeConstant.USER_NOT_EXISTED);
//        }
//        return user;
//    }

    @RequestMapping("error")
    public String errorTest() {
        throw new ServiceException(CodeConstant.NO_LOGIN);
    }

}
